---
title: Endpoint map
summary: Traceability from each PdfAPI.Client method to the PdfAPI endpoint it calls.
status: draft
owner: SAIF Doc Gen
last_reviewed: 2026-09-17
---

# Endpoint map

This page traces every remote member of `IPdfClient`/`PdfClient` to the `PdfAPI` endpoint it calls. `PdfAPI` is documented by this run, so every resolved row below is a real link into `docs/apis/pdfapi/endpoints/`.

| Field | Value |
| --- | --- |
| **Wrapped API** | `PdfAPI` |
| **Origin** | Documented by this run |
| **Base URL** | Caller-supplied constructor argument |
| **Version prefix** | `v1/` |
| **Remote members mapped** | 5 of 11 public members |

The base URI already carries the `v1/` suffix (`url.TrimEnd('/') + "/v1/"`); the relative URLs below are transcribed verbatim from each method body and are not doubled with the version segment.

## Method to endpoint map

| Client member | Verb | Relative URL | Endpoint | Request DTO | Response DTO | Reference |
| --- | --- | --- | --- | --- | --- | --- |
| `Convert(ConvertRequest request)` | POST | `convert` | [`POST v1/convert`](../../apis/pdfapi/endpoints/convert-controller.md#post-v1%2Fconvert) | `PdfAPI.Core.ConvertRequest` | `PdfResult` | [Details](reference.md#convert-from-request) |
| `Convert(byte[] file, string fileExtension, PdfFormat format = PdfFormat.Pdf)` | POST | `convert/{fileExtension.Trim('.')}?format={format}` | [`POST v1/convert/{fileExtension}`](../../apis/pdfapi/endpoints/convert-controller.md#post-v1%2Fconvert%2F%7Bfileextension%7D) | `byte[]` (body); `fileExtension` (path); `format` (query) | `PdfResult` | [Details](reference.md#convert-from-file-bytes) |
| `Merge(MergeRequest request)` | POST | `merge` | [`POST v1/merge`](../../apis/pdfapi/endpoints/merge-controller.md#post-v1%2Fmerge) | `PdfAPI.Core.MergeRequest` | `PdfResult` | [Details](reference.md#merge-documents) |
| `IsPdfa(byte[] pdf)` *(concrete class only)* | POST | `info/validate/pdfa` | [`POST v1/info/validate/pdfa`](../../apis/pdfapi/endpoints/info-controller.md#post-v1%2Finfo%2Fvalidate%2Fpdfa) | `byte[]` | `bool` | [Details](reference.md#validate-pdf-a-conformance) |
| `Track(long trackingId)` *(concrete class only)* | GET | `info/track/{trackingId}` | [`GET v1/info/track/{trackingId}`](../../apis/pdfapi/endpoints/info-controller.md#get-v1%2Finfo%2Ftrack%2F%7Btrackingid%7D) | — | `PdfTrackingInfo` | [Details](reference.md#track-request-status) |

## Unmapped members

Members below are part of the public surface but call no endpoint. All six delegate to the static, in-process `PdfAPI.Core.PdfClientService`.

| Client member | Why unmapped |
| --- | --- |
| `Version(byte[] pdf)` | Local computation, delegates to `PdfClientService.Version` |
| `Pages(byte[] pdf)` | Local computation, delegates to `PdfClientService.GetPageCount` |
| `IsPdf(byte[] pdf)` | Local computation, delegates to `PdfClientService.IsPdf` |
| `HasFormFields(byte[] pdf)` | Local computation, delegates to `PdfClientService.HasFormFields` |
| `Flatten(byte[] pdf)` | Local computation, delegates to `PdfClientService.Flatten` |
| `Extract(DocumentRange range)` | Local computation, delegates to `PdfClientService.ExtractPages` |

## Coverage

| Check | Result |
| --- | --- |
| Public members in `IPdfClient`/`PdfClient` | 11 |
| Rows in the endpoint map | 5 |
| Rows in unmapped members | 6 |
| Every mapped row resolves | Yes |

## Related documentation
- [Client index](index.md)
- [Overview](overview.md)
- [Architecture](architecture.md)
- [Package](package.md)
- [Client reference](reference.md)
- [Consumption](consumption.md)
- [Contracts](contracts.md)
- [Dependencies](dependencies.md)
- [Business rules](business-rules.md)
- [Tech debt](tech-debt.md)

## Sources
- `PdfAPI.Client\PdfClient.cs`
- `PdfAPI.Client\IPdfClient.cs`
- `PdfAPI\Controllers\v1\ConvertController.cs`
- `PdfAPI\Controllers\v1\MergeController.cs`
- `PdfAPI\Controllers\v1\InfoController.cs`
